package com.kehutong.charge.entity;

import com.kehutong.charge.util.enums.ChargeOrderStatusEnum;
import com.kehutong.charge.util.enums.CommonEnum;
import com.kehutong.charge.util.enums.ResidentsTypeEnum;
import com.kehutong.common.entity.DataEntity;
import org.coraframework.json.annotation.JSONField;
import org.coraframework.orm.annotation.Column;
import org.coraframework.orm.annotation.Table;
import org.coraframework.orm.annotation.UnSave;
import org.coraframework.orm.util.IDType;

import java.math.BigDecimal;
import java.sql.Timestamp;

/**
 * @program: kht
 * @description: ChargeOrderManage
 * @author: joneron
 * @create: 2021/7/5
 **/
@Table(value="t_charge_order_manage", comment="缴费订单管理表",multi = true, idType = IDType.TIMESTAMP, engine = "innodb")
public class ChargeOrderManage extends DataEntity {


    protected ChargeOrderManage(String id) {
        super(id);
    }

    @Column(comment="订单编号")
    private String orderNo;

    @Column(comment="商户单号(第三方订单编号)")
    private String orderNoThird;

    @Column(comment = "商户名称")
    private String mchName;

    @Column(comment = "交易单号")
    private String transactionId;

    @Column(comment="批次订单编号")
    private String batchOrderNo;

    @Column(comment="账单编号")
    private String houseBillNo;

    @Column(comment="楼栋编号")
    private String buildNo;

    @Column(comment="房屋编号")
    private String houseNo;

    @Column(comment="小区账单编号")
    private String communityBillNo;

    @Column(comment="小区编号")
    private String communityNo;

    @Column(comment ="小区名称")
    private String communityName;

    @Column(comment="账单地址")
    private String billAddress;

    @Column(comment="订单年月")
    private String orderYearMonth;

    @Column(comment="账单金额")
    private BigDecimal billAmount;

    @Column(comment="订单金额")
    private BigDecimal orderAmount;

    @Column(comment="应付金额")
    private BigDecimal payableAmount;

    @Column(comment="实付金额")
    private BigDecimal paymentAmount;

    @Column(comment="议价金额")
    private BigDecimal negotiateAmount;

    @Column(comment="输入金额")
    private BigDecimal inputAmount;

    @Column(comment="找零金额")
    private BigDecimal changeAmount;

    @Column(comment="订单状态")
    private ChargeOrderStatusEnum orderStatus;

    @Column(comment="操作状态")
    private ChargeOrderStatusEnum optStatus;

    @Column(comment="支付方式")
    private CommonEnum payMethod;

    @Column(comment="订单来源类型")
    private CommonEnum orderOrigin;

    @Column(comment="订单来源")
    private CommonEnum originFrom;

    @Column(length = 300,comment="关闭说明")
    private String closeRemark;

    @Column(length = 300,comment="描述、说明")
    private String remark;

    @Column(comment="付款人名称")
    private String chargeName;

    @Column(comment="付款人编号")
    private String userNo;

    @Column(comment="住户类型")
    private ResidentsTypeEnum residentsType;

    @Column(comment="支付时间")
    @JSONField (format="yyyy-MM-dd HH:mm:ss")
    private Timestamp payTime;

    @Column(comment="完成时间")
    @JSONField (format="yyyy-MM-dd HH:mm:ss")
    private Timestamp finishTime;

    @UnSave //开始时间
    private String startTime;

    @UnSave //结束时间
    private String endTime;

    @Column(comment="创建人")
    private String createName;

    @Column(comment="修改人")
    private String updateName;

    @JSONField(serialize = false)
    @Column(comment = "逻辑删除")
    private boolean deleted;


    public String getMchName() {
        return mchName;
    }

    public void setMchName(String mchName) {
        this.mchName = mchName;
    }

    public String getTransactionId() {
        return transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public CommonEnum getOriginFrom() {
        return originFrom;
    }

    public void setOriginFrom(CommonEnum originFrom) {
        this.originFrom = originFrom;
    }

    public String getBuildNo() {
        return buildNo;
    }

    public void setBuildNo(String buildNo) {
        this.buildNo = buildNo;
    }

    public String getOrderNoThird() {
        return orderNoThird;
    }

    public void setOrderNoThird(String orderNoThird) {
        this.orderNoThird = orderNoThird;
    }

    public ChargeOrderStatusEnum getOptStatus() {
        return optStatus;
    }

    public void setOptStatus(ChargeOrderStatusEnum optStatus) {
        this.optStatus = optStatus;
    }

    public String getBatchOrderNo() {
        return batchOrderNo;
    }

    public void setBatchOrderNo(String batchOrderNo) {
        this.batchOrderNo = batchOrderNo;
    }

    public String getHouseNo() {
        return houseNo;
    }

    public void setHouseNo(String houseNo) {
        this.houseNo = houseNo;
    }

    public ResidentsTypeEnum getResidentsType() {
        return residentsType;
    }

    public void setResidentsType(ResidentsTypeEnum residentsType) {
        this.residentsType = residentsType;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public String getCommunityBillNo() {
        return communityBillNo;
    }

    public void setCommunityBillNo(String communityBillNo) {
        this.communityBillNo = communityBillNo;
    }

    public BigDecimal getBillAmount() {
        return billAmount;
    }

    public void setBillAmount(BigDecimal billAmount) {
        this.billAmount = billAmount;
    }

    public String getCloseRemark() {
        return closeRemark;
    }

    public void setCloseRemark(String closeRemark) {
        this.closeRemark = closeRemark;
    }

    public Timestamp getPayTime() {
        return payTime;
    }

    public void setPayTime(Timestamp payTime) {
        this.payTime = payTime;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Timestamp getFinishTime() {
        return finishTime;
    }

    public void setFinishTime(Timestamp finishTime) {
        this.finishTime = finishTime;
    }

    public BigDecimal getInputAmount() {
        return inputAmount;
    }

    public void setInputAmount(BigDecimal inputAmount) {
        this.inputAmount = inputAmount;
    }

    public BigDecimal getChangeAmount() {
        return changeAmount;
    }

    public void setChangeAmount(BigDecimal changeAmount) {
        this.changeAmount = changeAmount;
    }

    public String getOrderYearMonth() {
        return orderYearMonth;
    }

    public void setOrderYearMonth(String orderYearMonth) {
        this.orderYearMonth = orderYearMonth;
    }

    public String getHouseBillNo() {
        return houseBillNo;
    }

    public void setHouseBillNo(String houseBillNo) {
        this.houseBillNo = houseBillNo;
    }

    public BigDecimal getPayableAmount() {
        return payableAmount;
    }

    public void setPayableAmount(BigDecimal payableAmount) {
        this.payableAmount = payableAmount;
    }

    public BigDecimal getPaymentAmount() {
        return paymentAmount;
    }

    public void setPaymentAmount(BigDecimal paymentAmount) {
        this.paymentAmount = paymentAmount;
    }

    public BigDecimal getNegotiateAmount() {
        return negotiateAmount;
    }

    public void setNegotiateAmount(BigDecimal negotiateAmount) {
        this.negotiateAmount = negotiateAmount;
    }

    public String getUserNo() {
        return userNo;
    }

    public void setUserNo(String userNo) {
        this.userNo = userNo;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getCommunityNo() {
        return communityNo;
    }

    public void setCommunityNo(String communityNo) {
        this.communityNo = communityNo;
    }

    public String getBillAddress() {
        return billAddress;
    }

    public void setBillAddress(String billAddress) {
        this.billAddress = billAddress;
    }

    public BigDecimal getOrderAmount() {
        return orderAmount;
    }

    public void setOrderAmount(BigDecimal orderAmount) {
        this.orderAmount = orderAmount;
    }

    public ChargeOrderStatusEnum getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(ChargeOrderStatusEnum orderStatus) {
        this.orderStatus = orderStatus;
    }

    public CommonEnum getPayMethod() {
        return payMethod;
    }

    public void setPayMethod(CommonEnum payMethod) {
        this.payMethod = payMethod;
    }

    public CommonEnum getOrderOrigin() {
        return orderOrigin;
    }

    public void setOrderOrigin(CommonEnum orderOrigin) {
        this.orderOrigin = orderOrigin;
    }

    public String getChargeName() {
        return chargeName;
    }

    public void setChargeName(String chargeName) {
        this.chargeName = chargeName;
    }

    public String getUpdateName() {
        return updateName;
    }

    public void setUpdateName(String updateName) {
        this.updateName = updateName;
    }

    public boolean isDeleted() {
        return deleted;
    }

    public void setDeleted(boolean deleted) {
        this.deleted = deleted;
    }

    public String getCreateName() {
        return createName;
    }

    public void setCreateName(String createName) {
        this.createName = createName;
    }

    public String getCommunityName() {
        return communityName;
    }

    public void setCommunityName(String communityName) {
        this.communityName = communityName;
    }
}
